Compression and other image and/or video processing techniques often introduce undesirable gradation into the image and/or video content being processed. In one common situation, areas of an image frame that are intended to appear smooth, such as portions of an image frame representing a clear sky and/or other flat areas that are relatively consistent in intended appearance, actually appear unsmooth or “blocky” after compression. Such “blocks” or other gradations in an image frame are sometimes referred to as false contours.
Conventional approaches to addressing blocky areas in an image frame include the use of complex detection capability in order to determine which areas of an image frame are blocky, and the use of two-dimensional spatial filters with very large support areas to modify those areas determined to be blocky. The use of such complex detection capability and spatial filters disadvantageously requires, among other things, a large number of calculations, significant memory bandwidth, etc. For example, for each pixel in an area of the image frame that is determined to be blocky, a conventional two-dimensional spatial filter applies coefficients to each of hundreds or even thousands of pixels in a large area surrounding that pixel. The results of multiplication of the coefficients by the hundreds or thousands of surrounding pixels may then be added to produce an output that is used to replace the original pixel in the blocky area. As noted above, these operations are performed for each pixel in the area of the image frame that is determined to be blocky. Performance of these operations is extremely computationally intensive, and the computational intensity of course increases with the number of blocky areas in an image frame.
Another conventional approach to addressing blocky areas in an image frame involves, after determining which areas are blocky, applying dither such as one or more noisy data sets to the blocky areas. However, this approach also involves expensive detection of which areas are blocky, such as by using complex detection logic as discussed above. Furthermore, the applied dither, while it may mask some blocky features of the image frame, introduces a form of new, false noise into the image frame. This newly introduced noise is frequently undesirable for other types of processing performed in image and/or video processing and/or decoding/encoding techniques.